package entity

// // EnterSpace 进入某个场景
// func (e *Entity) EnterSpace(spaceID uint64) {
// 	if e.IsSpace() {
// 		e.Warn("Space entity couldn't move into space")
// 		return
// 	}

// 	srvID, err := dbservice.SpaceUtil(spaceID).GetSrvID()
// 	if err != nil {
// 		e.Error("Get srvID error ", err)
// 		return
// 	}

// 	util := dbservice.EntitySrvUtil(e.GetID())
// 	_, oldSpaceID, err := util.GetSpaceInfo()
// 	if err != nil {
// 		e.Error("Get space info failed: ", err)
// 		return
// 	}

// 	sendFunc := func() {
// 		msg := &msgdef.EnterSpaceReq{
// 			SrvID:      srvID,
// 			SpaceID:    spaceID,
// 			EntityType: e.entityType,
// 			EntityID:   e.entityID,
// 			DBID:       e.dbid,
// 			InitParam:  serializer.Serialize(e.initParam),
// 			OldSrvID:   0,
// 			OldSpaceID: 0,
// 		}

// 		if err := iserver.GetSrvInst().PostMsgToSpace(srvID, spaceID, msg); err != nil {
// 			e.Error("Enter space failed: ", err)
// 		}
// 	}

// 	if oldSpaceID != 0 {
// 		if oldSpaceID == spaceID {
// 			e.Warn("oldSpaceID == spaceID")
// 			return
// 		}

// 		e.LeaveSpace()
// 		time.AfterFunc(3*time.Second, sendFunc)
// 	} else {
// 		sendFunc()
// 	}
// }

// // LeaveSpace 离开场景
// func (e *Entity) LeaveSpace() {
// 	if e.IsSpace() {
// 		e.Warn("Space entity couldn't move into space")
// 		return
// 	}

// 	if e.GetSpaceID() == 0 {
// 		e.Warn("Entity not in space")
// 		return
// 	}

// 	srvID, err := dbservice.SpaceUtil(e.GetSpaceID()).GetSrvID()
// 	if err != nil {
// 		e.Error("Get srvID error ", err)
// 		return
// 	}

// 	msg := &msgdef.LeaveSpaceReq{
// 		EntityID: e.entityID,
// 	}

// 	if err := iserver.GetSrvInst().PostMsgToSpace(srvID, e.GetSpaceID(), msg); err != nil {
// 		e.Error("Leave space failed ", err)
// 	}
// }

// // LeaveSpace 离开场景
// func (e *Entity) LeaveSpaceByID(spaceID uint64) {

// 	srvID, err := dbservice.SpaceUtil(spaceID).GetSrvID()
// 	if err != nil {
// 		e.Error("Get srvID error ", err)
// 		return
// 	}

// 	msg := &msgdef.LeaveSpaceReq{
// 		EntityID: e.entityID,
// 	}

// 	if err := iserver.GetSrvInst().PostMsgToSpace(srvID, spaceID, msg); err != nil {
// 		e.Error("Leave space failed ", err)
// 	}
// }

// GetSpaceID 获取空间ID
func (e *Entity) GetSpaceID() uint64 {
	return e.spaceID
}

// IsOwnerSpaceEntity 是否拥有SpaceEntity的部分
func (e *Entity) IsOwnerSpaceEntity() bool {
	return e.spaceID != 0
}

// IsSpace 是否是空间
func (e *Entity) IsSpace() bool {
	return false
}

// IsSpaceEntity 是否是个空间实体
func (e *Entity) IsSpaceEntity() bool {
	return false
}
